import 'package:hive/hive.dart';

part 'task_model.g.dart';

// 定义一个名为 `Task` 的 Hive 对象，用于存储任务数据
// `@HiveType(typeId:0)` 是 Hive 框架中的一个注解，用于指定 Hive 对象的类型和类型 ID
// `typeId:0` 是 Hive 对象的类型 ID，用于在 Hive 数据库中唯一标识这个类型的对象
// `HiveObject` 是 Hive 框架中的一个抽象类，用于表示 Hive 对象的基类
@HiveType(typeId: 0)
class Task extends HiveObject {
  @HiveField(0) // 定义一个名为 `title` 的 Hive 字段，用于存储任务的标题
  String title; // 任务的标题

  @HiveField(1) // 定义一个名为 `description` 的 Hive 字段，用于存储任务的描述
  String description; // 任务的描述

  @HiveField(2) // 定义一个名为 `isCompleted` 的 Hive 字段，用于存储任务的完成状态
  bool isCompleted; // 任务的完成状态，默认为 false，表示未完成

  @HiveField(3)
  DateTime dueDate; // 任务的截止日期，默认为 null，表示没有截止日期

  @HiveField(4)
  int? countDown; // 任务的倒计时，默认为 null，表示没有倒计时

  Task({
    required this.title,
    required this.description,
    required this.isCompleted,
    required this.dueDate,
    required this.countDown,
  }); // 构造函数，用于创建一个新的 Task 对象，需要传入任务的标题、描述和完成状态，默认为 fals
}
